home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programmierung
/
Power-Programmierung CD 2 (Tewi)(1994).iso
/
doc
/
opcodes
/
opcode.txt
Wrap
Text File
|
1992-12-08
|
28KB
|
450 lines
The following opcode tables aid in interpreting 80386 object code. Use the
high order 4 bits of the opcode as an index to a row of the opcode table;
use the low order 4 bits as an index to a column of the table. If the
opcode is 0FH, refer to the 2-byte opcode table, and use the second byte
of the opcode to index the rows and columns of that table.
KEY TO ABBREVIATIONS
Operands are identified by a two-character code of the form Zz. The first
character, an uppercase letter, specifies the addressing method, the
second character, a lowercase letter, specifies the type of operand.
CODES FOR ADDRESSING METHOD
A: Direct address. The instruction has no mod r/m byte, the address
of the operand is encoded in the instruction' no base register, index
register, or scaling factor can be applied -- for example, far JMP (EA).
C: The reg field of the mod r/m byte selects a control register, for
example, MOV (0FH 20H, 0FH 22H).
D: The reg field of the mod r/m byte selects a debug register, for
example, MOV (0FH 21h, 0fh 23h).
E: A mod r/m byte follows the opcode and specifies the operand. The
operand is either a general register or a memory address. If it is a memory
address, the address is computed from a segment register and any of the
following values: a base register, an index register, a scaling factor or
a displacement.
F: Flags register.
G: The reg field of the mod r/m byte selects a general register --
for example, ADD (00H).
I: Immediate data. The value of the operand is encoded in subsequent
bytes of the instruction.
J: The instruction contains a relative offset to be added to the
instruction pointer register -- for example, JMP short, LOOP.
M: The mode r/m bytes may refer only to memory -- for example, BOUND,
LES, LDS, LSS, LFS, LGS.
O: The instruction has no mod r/m byte; the offset of the operand is
coded as a word or doubleword(depending on address size attribute) in the
instruction. No base register, index register, or scaling factor can be
applied -- for example, MOV (A0H-A3H)
R: The mod field of the mod r/m byte may refer only to a general
register -- for example, MOV(0FH 20H, 0FH 26H
S: The reg field of the mod r/m byte selects a segment register --
for example, MOV (8CH,8EH).
T: The reg field of the mod r/m byte selects a test register -- for
example, MOV (0FH 24H).
X: Memory addressed by DS:SI -- for example, MOVS, COMPS, OUTS, LODS,
SCAS.
Y: Memory addressed by ES:DI -- for example, MOVS CMPS, INS, STOS.
CODES FOR OPERAND TYPE
a: Two single-word operands in memory or two double-word operands in
memory, depending on operand size attribute (used only by BOUND).
b: Byte (regardless of operand size attribute).
c: Byte or word, depending on operand size attribute.
d: Doubleword (regardless of operand size attribute).
p: 32 bit or 48 bit pointer, depending on operand size attribute.
s: 6 byte pseudodescriptor.
v: Word or doubleword, depending on operand size attribute.
w: Word (regardless of operand size attribute).
REGISTER CODES
When an operand is a register encoded in the opcode, the register is
identified by its name, for example, AX, CL, or ESI. The name of the
register indicates whether the register is 32 bits, 16 bits, or 8 bits. A
register identifier of the form eXX is used when the width of the register
depends on the operand size attribute; for example, eAX indicates that the
AX register is used when the operand size attribute is 16 and that the EAX
register is used when the operand size attribute is 32.
ONE BYTE OPCODE TABLE
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│0 │1 │2 │3 │4 │5 │6 │7 │
┌─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│0│ADD │ADD │ADD │ADD │ADD │ADD │PUSH │POP │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,lv │ES │ES │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│1│ADC │ADC │ADC │ADC │ADC │ADC │PUSH │POP │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Lb │eAX,Iv │SS: │SS │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│2│AND │AND │AND │AND │AND │AND │ES: │DAA │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│3│XOR │XOR │XOR │XOR │XOR │XOR │SS: │AAA │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│4│INC │INC │INC │INC │INC │INC │INC │INC │
│ │eAX │eCX │eDX │eBX │eSP │eBp │eSI │eDI │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│5│PUSH │PUSH │PUSH │PUSH │PUSH │PUSH │PUSH │PUSH │
│ │eAX │eCX │eDX │eBX │eSP │eBP │eSI │eDI │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│6│PUSHAD │POPAD │BOUND │ARPL │FS: │GS: │OPSIZE: │ADRSIZE:│
│ │ │ │Gv,Ma │Ew,Rw │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│7│JO │JNO │JB │JNB │JZ │JNZ │JBE │JNBE │
│ │Jb │Jb │Jb │Jb │Jb │Jb │Jb │Jb │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│8│Group1 │Group1 │ │Group1 │TEST │TEST │XCHG │XCHG │
│ │Eb,Ib │Ev,Iv │ │Ev,Ib │Eb,Gb │Ev,Gv │Ev,Gb │Ev,Gv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│9│NOP │XCHG │XCHG │XCHG │XCHG │XCHG │XCHG │XCHG │
│ │ │eCX,eAX │eDX,eAX │eBX,eAX │eSP,eAX │eBP,eAX │ESI,eAX │eDI,eAX │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│A│MOV │MOV │MOV │MOV │MOVSB │MOVSW/D │CMPSB │CMPSW/D │
│ │AL,Ob │eAX,Ov │Ob,AL │Ov,eAX │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│B│MOV │MOV │MOV │MOV │MOV │MOV │MOV │MOV │
│ │Al,Ib │Cl,Ib │DL,Ib │BL,Ib │AH,Ib │CH,Ib │DH,Ib │BH,Ib │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│C│Group2 │Group2 │RET near│RET near│LES │LDS │MOV │MOV │
│ │Eb,Ib │Ev,Lb │lw │ │Gv,Mp │Gv,Mp │Eb,Ib │Ev,Iv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│D│Group2 │Group2 │Group2 │Group2 │AAM │AAD │ │XLAT │
│ │Eb,1 │Ev,1 │Eb,CL │Ev,Cl │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│E│LOOPNE │LOOPE │LOOP │JCXZ │IN │IN │OUT │OUT │
│ │Jb │Jb │Jb │Jb │Al,Ib │eAX,Ib │Ib,AL │eAX │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│F│LOCK │ │REPNE │REP │HLT │CMC │Group3 │Group3 │
│ │ │ │ │REPE │ │ │Eb │Ev │
└─┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
ONE BYTE OPCODE (CONTINUED)
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│8 │9 │A │B │C │D │E │F │
┌─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│0│OR │OR │OR │OR │OR │OR │PUSH │2byte │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │CS │escape │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│1│SBB │SBB │SBB │SBB │SBB │SBB │PUSH │POP │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │DS │DS │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│2│SUB │SUB │SUB │SUB │SUB │SUB │CS: │DAS │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│3│CMP │CMP │CMP │CMP │CMP │CMP │DS: │AAS │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │AL,Ib │eAX,Iv │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│4│DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │
│ │eAX │eCX │eDX │eBX │eSP │eBP │eSI │eDI │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│5│POP │POP │POP │POP │POP │POP │POP │POP │
│ │eAX │eCX │eDX │eBX │eSP │eBP │eSI │eDI │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│6│PUSH │IMUL │PUSH │IMUL │INSB │INSW/D │OUTSB │OUTSW/D │
│ │Iv │Gv,Ev,Iv│Ib │Gv,Ev,Ib│Yb,DX │Yv,DX │DX,XB │DX,Xv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│7│JS │JNS │JP │JNP │JL │JNL │JLE │JNLE │
│ │Jb │Jb │Jb │Jb │Jb │Jb │Jb │Jb │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│8│MOV │MOV │MOV │MOV │MOV │LEA │MOV │POP │
│ │Eb,Gb │Ev,Gv │Gb,Eb │Gv,Ev │Ew,Sw │Gv,M │Sw,Ew │Ev │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│9│CBW │CWD │CALL │WAIT │PUSHF │POPF │SAHF │LAHF │
│ │ │ │Ap │ │Fv │Fv │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│A│TEST │TEST │STOSB │STOSW/D │LODSB │LODSW/D │SCASB │SCASW/D │
│ │AL,Ib │eAX,Iv │ │ │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│B│MOV │MOV │MOV │MOV │MOV │MOV │MOV │MOV │
│ │eAX,Iv │eCX,Iv │eDX,Iv │eBX,Iv │eSP,Iv │eBP,Iv │eSI,Iv │eDI,Iv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│C│ENTER │LEAVE │RET far │ │INT │INT │INTO │IRET │
│ │Iw,Ib │ │Iw │ │3 │Ib │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│D│ESC │ESC │ESC │ESC │ESC │ESC │ESC │ESC │
│ │0 │1 │2 │3 │4 │5 │6 │7 │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│E│CALL │JMP │JMP │JMP │IN │IN │OUT │OUT │
│ │Av │Jv │Ap │Jb │AL,DX │eAX,DX │DX,AL │DX,eAX │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│F│CLC │STC │CLI │STI │CLD │STD │Group4 │Group5 │
│ │ │ │ │ │ │ │ │ │
└─┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
Two byte Opcode Table (First byte is 0FH)
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│0 │1 │2 │3 │4 │5 │6 │7 │
┌─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│0│Group6 │Group7 │LAR │LSL │ │ │CLTS │ │
│ │ │ │Gv,Ew │Gv,Ew │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│2│MOV │MOV │MOV │MOV │MOV │ │MOV │ │
│ │Cd,Rd │Dd,Rd │Rd,Cd │Rd,Dd │Td,Rd │ │Rd,Td │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│8│JO │JNO │JB │JBN │JZ │JNZ │JBE │JNBE │
│ │Jv │Jv │Jv │Jv │Jv │Jv │Jv │Jv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│9│SETO │SETNO │SETB │SETNB │SETZ │SETNZ │SETBE │SETNBE │
│ │Eb │Eb │Eb │Eb │Eb │Eb │Eb │Eb │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│A│PUSH │POP │ │BT │SHLD │SHLD │ │ │
│ │FS │FS │ │Ev,Gv │Ev,Gv,Ib│Ev,Gv,CL│ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│B│ │ │LSS │BTR │LFS │LGS │MOVZX │MOVZX │
│ │ │ │Mp │Ev,Gv │Mp │Mp │Gv,Eb │Gv,Ew │
└─┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│ │ │ │ │ │ │ │ │
│8 │9 │A │B │C │D │E │F │
┌─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│8│JS │JNS │JP │JNP │JL │JNL │JLE │JNLE │
│ │Jv │Jv │Jv │Jv │Jv │Jv │Jv │Jv │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│9│SETS │SETNS │SETP │SETNP │SETL │SETNL │SETLE │SETNLE │
│ │Eb │Eb │Eb │Eb │Eb │Eb │Eb │Eb │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│A│PUSH │POP │ │BTS │SHRD │SHRD │ │IMUL │
│ │Gs │Gs │ │Ev,Gv │Ev,Gv,Ib│Ev,Gv,Cl│ │Gv,Ev │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│B│ │ │Group8 │BTC │BSF │BSR │MOVSX │MOVSX │
│ │ │ │Ev,Ib │Ev,Gv │Gv,Ev │Gv,Ev │Gv,Eb │Gv,Ew │
└─┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
Opcodes determined by Bits 5,4 and 3 of mod r/m Byte: mod nnn r/m
Group
┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
┌─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│1│ADD │OR │ADC │SBB │AND │SUB │XOR │CMP │
│ │ │ │ │ │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│2│ROL │ROR │RCL │RCR │SHL │SHR │ │SAR │
│ │ │ │ │ │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│3│TEST │ │NOT │NEG │MUL │IMUL │DIV │IDIV │
│ │Ib/Iv │ │ │ │AL/eAX │AL/eAX │AL/eAX │AL/eAX │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│4│INC │DEC │ │ │ │ │ │ │
│ │Eb │Eb │ │ │ │ │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│5│INC │DEC │CALL │CALL │JMP │JMP │PUSH │ │
│ │Ev │Ev │Ev │Ep │Ev │Ep │Ev │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│6│SLDT │STR │LLDT │LTR │VERR │VERW │ │ │
│ │Ew │Ew │Ew │Ew │Ew │Ew │ │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│7│SGDT │SIDT │LGDT │LIDT │SMSW │ │LMSW │ │
│ │Ms │Ms │Ms │Ms │Ew │ │Ew │ │
├─┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│8│ │ │ │ │BT │BTS │BTR │BTC │
│ │ │ │ │ │ │ │ │ │
└─┴────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
80387 Extensions
The following shows the opcode map to the 80386 instruction set for the
80387 extensions. The operand abbreviations for these tables are:
Es: Effective address, short real (32-bit)
El: Effective address, long real (64-bit)
Et: Effective address, temp real (80-bit)
Ew: Effective address, word (16-bit)
Ed: Effective address, doubleword (32-bit)
Eq: Effective address, quadword (64-bit)
Eb: Effective address, BCD (80-bit)
Ea: Effective address, (no operand size)
ST(i): Stack element i
ST: Stack top
┌───┬───┬───┬───┬───┬───┬───┬───┐
Format: │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │
│ mod │ nnn │ r/m │
└───────┴───────────┴───────────┘
┌─────────┐
│ ESC 0 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FADD │FMUL │FCOM │FCOMP │FSUB │FSUBR │FDIV │FDIVR │
mod=01 │Es │Es │Es │Es │Es │Es │Es │Es │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
mod=11 │FADD │FMUL │FCOM │FCOMP │FSUB │FSUBR │FDIV │FDIVR │
│ST,ST(i)│ST,ST(i)│ST,ST(i)│ST,ST(i)│ST,ST(i)│ST,ST(i)│ST,ST(i)│ST,ST(i)│
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
1=r/m
┌─────────┐
│ ESC 1 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FLD │ │FST │FSTP │FLDENV │FLDCW │FSTENV │FSTCW │
mod=01 │Es │ │Es │Es │Ea │Ew │Ea │Ew │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
r/m│FLD │FXCH │FNOP │ │FCHS │FLD1 │F2XM1 │FPREM │
000│ST(0) │ST(0) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│FLD │FXCH │ │ │FABS │FLDL2T │FYL2X │FYL2XP1 │
001│ST(1) │ST(1) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
010│FLD │FXCH │ │ │ │FLDL2E │FPTAN │FSQRT │
│ST(2) │ST(2) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
011│FLD │FXCH │ │ │ │FLDPI │FPATAN │FSINCOS │
│ST(3) │ST(3) │ │ │ │ │ │ │
mod=11 ├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
100│FLD │FXCH │ │ │FTST │FLDLG2 │FXTRACT │FRNDINT │
│ST(4) │ST(4) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
101│FLD │FXCH │ │ │FXAM │FLDLN2 │FPREMI │FSCALE │
│ST(5) │ST(5) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
110│FLD │FXCH │ │ │ │FLDZ │FDECSTP │FSIN │
│ST(6) │ST(6) │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
111│FLD │FXCH │ │ │ │ │FINCSTP │FCOS │
│ST(7) │ST(7) │ │ │ │ │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
┌─────────┐
│ ESC 2 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FIADD │FIMUL │FICOM │FICOMP │FISUB │FISUBR │FIDIV │FIDIVR │
mod=01 │Ew │Ew │Ew │Ew │Ew │Ew │Ew │Ew │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
mod=11 │ │FUCOMPP*│ │ │ │ │ │ │
│ │ │ │ │ │ │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
*r/m=5
┌─────────┐
│ ESC 3 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FILD │ │FIST │FISTP │FLD │ │FSTP │ │
mod=01 │Ew │ │Ew │Ew │Et │ │Et │ │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
mod=11 │ │ │ │ │Group 3a│ │ │ │
│ │ │ │ │ │ │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
┌──────────────────────────┐
│ Group 3a: mod=11,nnn=100 │
┌────────┬────────┬──┴─────┬────────┬────────┬──┴─────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│(FENI) │(FDISI) │FCLEX │FINIT │(FSETPM)│ │ │ │
│ │ │ │ │ │ │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
┌─────────┐
│ ESC 4 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FADD │FMUL │FCOM │FCOMP │FSUB │FSUBR │FDIV │FDIVR │
mod=01 │El │El │El │El │El │El │El │El │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
mod=11 │FADD │FMUL │FCOM │FCOMP │FSUB │FSUBR │FDIV │FDIVR │
│ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
i=r/m
┌─────────┐
│ ESC 5 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
00 │FLD │ │FST │FSTP │FRSTOR │ │FSAVE │FSTSW │
mod=01 │El │ │El │El │Ea │ │Ea │Ew │
10 │ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
mod=11 │FFREE │ │FST │FSTP │FUCOM │FUCOMP │ │ │
│ST(i) │ │ST(i) │ST(i) │ST(i) │ST(i) │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
i=r/m
┌─────────┐
│ ESC 6 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│FIADD │FIMUL │FICOM │FICOMP │FISUB │FISUBR │FIDIV │FIDIVR │
│Ed │Ed │Ed │Ed │Ed │Ed │Ed │Ed │
│ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│FADDP │FMULP │ │FCOMPP *│FSUBP │FSUBRP │FDIVP │FDIVRP │
│ST(i),ST│ST(i),ST│ │ │ST(i),ST│ST(i),ST│ST(i),ST│ST(i),ST│
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
* r/m=001
┌─────────┐
│ ESC 7 │
│ nnn │
┌────────┬────────┬────────┬───┴────┬────┴───┬────────┬────────┬────────┐
│000 │001 │010 │011 │100 │101 │110 │111 │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│FILD │ │FIST │FISTP │FBLD │FILD │FBSTP │FISTP │
│Ed │ │Ed │Ed │Eb │Eq │Eb │Eq │
│ │ │ │ │ │ │ │ │
├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┤
│FSTSW* │ │ │ │ │ │ │ │
│ AX │ │ │ │ │ │ │ │
└────────┴────────┴────────┴────────┴────────┴────────┴────────┴────────┘
*r/m=000
========================================================> End of file